Complex distributed systems and applications include software running on multiple servers and may include integrated products or software libraries from multiple vendors. Components of the system are located on networked computers that interact and coordinate their actions to work properly. The system may also interact with third party systems to complete certain transactions.
For example, consider an online shopping application where a customer selects items to purchase and initiates a “submit order” action to buy the items. To the customer, the process appears simple but behind the scenes, the process can be very complex. Many function calls may be made to third party systems and/or calls to different types of systems with multiple technologies. There may be a function call to a credit card system to verify the customer's credit card and available funds, a call to an inventory database to verify that the purchased items are in stock, a call to a shipping system to get shipping information for delivering the purchased items, and other calls needed to process the order. All of the actions performed to complete the “submit order” are referred to as a business transaction. The individual systems and the online shopping application need to work together to properly process the business transaction.